#ifndef __BSP_PRINT_H__
#define __BSP_PRINT_H__
#define BAUD 115200
#define SCANF_TIMEOUT 1000000UL
#include "stdio.h"
#include "bsp_def.h"
/*打印标准操作
初始化后，可使用printf,scanf,timeout_scanf，
即标准库函数，目标是在未来的框架中实现一套基于命令行的操作，方便调试。
*/
void bsp_print_init(void);
GBool bsp_print_isRxBufNotEmpty(void);
GBool bsp_print_rxBufferTimeout(void);
void bsp_print_RxReset(void);

//特别的scanf，会有超时效果，超时时间在上面，随便定的，只是用来倒数计时
#define timeout_scanf(format, ...)         \
    do                                     \
    {                                      \
        GBool ret = GFalse;                \
        ret = bsp_print_rxBufferTimeout(); \
        if (!ret)                          \
        {                                  \
            scanf(format, __VA_ARGS__);    \
            bsp_print_RxReset();           \
        }                                  \
    } while (0)
#endif
